package org.ala.tiktools.tools.id;

import java.util.concurrent.ThreadLocalRandom;

/**
 * [0（1位） |  41位时间戳  |  22位随机数 ]
 *
 *
 * @author ala
 * @date 2025-04-10 10:23
 */
public class TimestampIdGenerator {


    public static TimestampIdGenerator build() { return new TimestampIdGenerator(); }


    /**
     *  生成id
     *  <p>	41位时间戳 + 22位随机数
     */
    public long id() {
    	int id = ThreadLocalRandom.current().nextInt();
        return (System.currentTimeMillis() << 32) | id;
    }


    /**
     *  取id上的时间戳
     */
    public int timestamp(long id) {
        return (int)(id >>> 32);
    }

}
